package com.project.mapper.goodsMapper;

import com.github.pagehelper.PageInfo;
import com.project.bean.GoodsBean;
import com.project.bean.GoodsOrderBean;
import com.project.bean.ReviewBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IGoodsMapper {

    /**
     * (门店)动态查询商品
     * @param goodsName 商品名称
     * @param type 商品类型
     * @param type 商品产地
     * @param  storeId  门店ID
     * @return 商品集合
     */
    public List<GoodsBean> findByItem(@Param("goodsName") String goodsName,
                                      @Param("type") String type,
                                      @Param("address") String address,
                                      @Param("storeId") Integer storeId);

    /**
     * 主页商品显示搜索功能
     * @param goodsName  商品名
     * @param type  商品类型
     * @param address  产地
     * @param storeName  门店名
     * @return  门电集合
     */
    public List<GoodsOrderBean> findByName(@Param("goodsName") String goodsName,
                                           @Param("type") String type,
                                           @Param("address") String address,
                                           @Param("storeName")String storeName);


    /**
     * 查看商品详情
     * @param goodsId 商品编号
     * @return 商品对象
     */
    public GoodsBean findById(int goodsId);

    /***
     * 添加商品
     * @param goods 商品
     * @param storeId 店铺ID
     */
    public void add(@Param("goods") GoodsBean goods,@Param("storeId") int storeId);

    /**
     * 下架商品并修改下架状态
     * @param goodsId
     */
    public void del(int goodsId);

    /**
     * 修改商品价格
     * @param goodsId 商品id
     * @param price 价格
     */
    public void update(@Param("goodsId") int goodsId,@Param("price") int price);
    /**
     * 修改商品数量
     * @param goodsId 商品Id
     * @param newNum 商品数量
     */
    public void updateNumber(@Param("goodsId") int goodsId,@Param("newNum") int newNum);

    /**
     * 下架所有关闭店铺商品
     */
    public void delAllByStore(int storeId);

    /**
     * 上架所有该店铺商品
     */
    public void addAllByStore(int storeId);
}
